//
//  IDataModel.h
//  Zhidao
//
//  Created by liangqiaozhong on 12-12-13.
//  Copyright (c) 2012年 Baidu.com. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "ErrorDefines.h"




@interface ServerError : NSObject

@property (nonatomic, retain) NSString *errorMsg;
@property (nonatomic, assign) RCErrorType errorType;
- (id) initWithDic:(NSDictionary *)dic;

@end



@interface IDataModel : NSObject

// 将JSON数据解析为数据模型,此处为空实现，需要具体的IDataModel子类重载实现
- (id)parseDataFromJSON:(NSDictionary*)data;
- (void) parseErrorCode:(NSDictionary*)data;

+ (id)parseDataFromJSON:(NSDictionary*)data;
- (void)buildSimulationData;
//- (void) saveInDB;
@property(nonatomic, assign) BOOL isDataFromOfflinePackage; // 数据模型是否来自离线下载包
@property(nonatomic, assign) int errorNO;                   // 错误代码
@property(nonatomic, copy) NSString *errorMsg;              // 错误信息
@property(nonatomic, retain) NSString *jsonValue;
@property(nonatomic, retain) NSString *dbKey;               // 在数据库中索引的KEY
@property(nonatomic, assign) BOOL isDataFromDB;             // 数据模型是否从本地数据库中来
@property(nonatomic,retain) NSDictionary *userInfo;         // 请求时传入的参数，可以在IManager的asyncFetchDataWithUserInfo接口传递userInfo参数，在网络请求返回时访问该参数，以便处理一些在网络请求返回时需要用到请求参数的情况
@property(nonatomic, retain) ServerError *err;
@end

//@interface PackageInfo : IDataModel<NSCopying, NSMutableCopying>
//
//@property(nonatomic, assign) BOOL isNewest;
//@property(nonatomic, assign) BOOL isPackageExist;
//@property(nonatomic, copy) NSString *packageUrl;
//@property(nonatomic, assign) int packageSize;
//
//@end

//@interface LVSceneBaseInfo : IDataModel<NSCopying, NSMutableCopying>
//
//@property(nonatomic,copy) NSString *sid; // 景点Id
//@property(nonatomic,copy) NSString *parentSid; // 父景点Id，如果为nil，或者与sceneId相同，则是旧景点
//@property(nonatomic,copy) NSString *scenePath;//如亚洲，中国
//@property(nonatomic,copy) NSString *sceneName; // 景点名称
//@property(nonatomic,copy) NSString *sceneBriefInformation;// 景点简介
//@property(nonatomic,copy) NSString *strVersion;// version
//@property(nonatomic,copy) NSString *map_x;
//@property(nonatomic,copy) NSString *map_y;
//@property(nonatomic,copy) NSString *pic_url;
//@property(nonatomic,retain) PackageInfo *packageInfo;
//@property(nonatomic,assign) LVSceneLayerType sceneLayer;// 景点层级
//@property(nonatomic,assign) BOOL isOffline;
//@property(nonatomic,assign) BOOL useParentSid;//当进行离线包搜索的时候，先判断是否使用parentSid
//@property(nonatomic,copy) NSString* level;// 星级
//@property(nonatomic,copy) NSString *openingTime;//开放时间
//@property(nonatomic,copy) NSString *ticketPrice;//门票
//@property(nonatomic,copy) NSString *phone;//电话
//@property(nonatomic,copy) NSString *addressDetails;// 详细地址
//@property(nonatomic,copy) NSString *bestVisitTime;//最近旅游时间
//@property(nonatomic,copy) NSString *recommendVisitTime;//建议游玩时间
//@property(nonatomic,copy) NSString *abstract;//一句话简介
//@property(nonatomic,copy) NSString *desc;//描述
//@property(nonatomic,copy) NSString *offlineParentSid;
//@property(nonatomic,assign) BOOL isChina;//台湾是中国的，但是因为没有地图，暂时不归为china（这里指的是狭义上的大陆及港澳，不是整个中国）
//
//- (void)autoSetParentSid;
//
//@end
